{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "2e769bfa-73be-4463-a1eb-f55d62e95b2e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x_train.shape= (25000,)\n",
      "y_train.shape= (25000,)\n",
      "x_test.shape= (25000,)\n",
      "y_test.shape= (25000,)\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "imdb=tf.keras.datasets.imdb\n",
    "(x_train,y_train),(x_test,y_test)=imdb.load_data(num_words=4000)\n",
    "print(\"x_train.shape=\",x_train.shape)\n",
    "print(\"y_train.shape=\",y_train.shape)\n",
    "print(\"x_test.shape=\",x_test.shape)\n",
    "print(\"y_test.shape=\",y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "f6071881-82d3-4475-98e3-5960123b90c2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "序列填充前的第一个元素:\n",
      " [1, 14, 22, 16, 43, 530, 973, 1622, 1385, 65, 458, 2, 66, 3941, 4, 173, 36, 256, 5, 25, 100, 43, 838, 112, 50, 670, 2, 9, 35, 480, 284, 5, 150, 4, 172, 112, 167, 2, 336, 385, 39, 4, 172, 2, 1111, 17, 546, 38, 13, 447, 4, 192, 50, 16, 6, 147, 2025, 19, 14, 22, 4, 1920, 2, 469, 4, 22, 71, 87, 12, 16, 43, 530, 38, 76, 15, 13, 1247, 4, 22, 17, 515, 17, 12, 16, 626, 18, 2, 5, 62, 386, 12, 8, 316, 8, 106, 5, 4, 2223, 2, 16, 480, 66, 3785, 33, 4, 130, 12, 16, 38, 619, 5, 25, 124, 51, 36, 135, 48, 25, 1415, 33, 6, 22, 12, 215, 28, 77, 52, 5, 14, 407, 16, 82, 2, 8, 4, 107, 117, 2, 15, 256, 4, 2, 7, 3766, 5, 723, 36, 71, 43, 530, 476, 26, 400, 317, 46, 7, 4, 2, 1029, 13, 104, 88, 4, 381, 15, 297, 98, 32, 2071, 56, 26, 141, 6, 194, 2, 18, 4, 226, 22, 21, 134, 476, 26, 480, 5, 144, 30, 2, 18, 51, 36, 28, 224, 92, 25, 104, 4, 226, 65, 16, 38, 1334, 88, 12, 16, 283, 5, 16, 2, 113, 103, 32, 15, 16, 2, 19, 178, 32]\n",
      "序列填充前的第一个元素:\n",
      " [   1   14   22   16   43  530  973 1622 1385   65  458    2   66 3941\n",
      "    4  173   36  256    5   25  100   43  838  112   50  670    2    9\n",
      "   35  480  284    5  150    4  172  112  167    2  336  385   39    4\n",
      "  172    2 1111   17  546   38   13  447    4  192   50   16    6  147\n",
      " 2025   19   14   22    4 1920    2  469    4   22   71   87   12   16\n",
      "   43  530   38   76   15   13 1247    4   22   17  515   17   12   16\n",
      "  626   18    2    5   62  386   12    8  316    8  106    5    4 2223\n",
      "    2   16  480   66 3785   33    4  130   12   16   38  619    5   25\n",
      "  124   51   36  135   48   25 1415   33    6   22   12  215   28   77\n",
      "   52    5   14  407   16   82    2    8    4  107  117    2   15  256\n",
      "    4    2    7 3766    5  723   36   71   43  530  476   26  400  317\n",
      "   46    7    4    2 1029   13  104   88    4  381   15  297   98   32\n",
      " 2071   56   26  141    6  194    2   18    4  226   22   21  134  476\n",
      "   26  480    5  144   30    2   18   51   36   28  224   92   25  104\n",
      "    4  226   65   16   38 1334   88   12   16  283    5   16    2  113\n",
      "  103   32   15   16    2   19  178   32    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0]\n"
     ]
    }
   ],
   "source": [
    "print(\"序列填充前的第一个元素:\\n\",x_train[0])\n",
    "x_train=tf.keras.preprocessing.sequence.pad_sequences(x_train,padding='post',maxlen=400,truncating='post')\n",
    "x_test=tf.keras.preprocessing.sequence.pad_sequences(x_test,padding='post',maxlen=400,truncating='post')\n",
    "print(\"序列填充前的第一个元素:\\n\",x_train[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "f06c18b5-095a-4a31-a0a7-c51bfc7a26ab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_2\"</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1mModel: \"sequential_2\"\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
       "┃<span style=\"font-weight: bold\"> Layer (type)                         </span>┃<span style=\"font-weight: bold\"> Output Shape                </span>┃<span style=\"font-weight: bold\">         Param # </span>┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
       "│ embedding_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Embedding</span>)              │ ?                           │     <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (unbuilt) │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dropout_4 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)                  │ ?                           │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ lstm_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LSTM</span>)                        │ ?                           │     <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (unbuilt) │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dropout_5 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dropout</span>)                  │ ?                           │               <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dense_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                      │ ?                           │     <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (unbuilt) │\n",
       "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n",
       "</pre>\n"
      ],
      "text/plain": [
       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
       "┃\u001b[1m \u001b[0m\u001b[1mLayer (type)                        \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape               \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m        Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
       "│ embedding_2 (\u001b[38;5;33mEmbedding\u001b[0m)              │ ?                           │     \u001b[38;5;34m0\u001b[0m (unbuilt) │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dropout_4 (\u001b[38;5;33mDropout\u001b[0m)                  │ ?                           │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ lstm_2 (\u001b[38;5;33mLSTM\u001b[0m)                        │ ?                           │     \u001b[38;5;34m0\u001b[0m (unbuilt) │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dropout_5 (\u001b[38;5;33mDropout\u001b[0m)                  │ ?                           │               \u001b[38;5;34m0\u001b[0m │\n",
       "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
       "│ dense_2 (\u001b[38;5;33mDense\u001b[0m)                      │ ?                           │     \u001b[38;5;34m0\u001b[0m (unbuilt) │\n",
       "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model=tf.keras.models.Sequential()\n",
    "model.add(tf.keras.layers.Embedding(output_dim=32,input_dim=4000,input_length=400))\n",
    "model.add(tf.keras.layers.Dropout(0.3))\n",
    "model.add(tf.keras.layers.LSTM(32))\n",
    "model.add(tf.keras.layers.Dropout(0.3))\n",
    "model.add(tf.keras.layers.Dense(1,activation='sigmoid'))\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "a234772d-cb14-42b6-958a-5a9655b4b547",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m14s\u001b[0m 41ms/step - accuracy: 0.5080 - loss: 0.6930 - val_accuracy: 0.4938 - val_loss: 0.6941\n",
      "Epoch 2/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 41ms/step - accuracy: 0.5034 - loss: 0.6924 - val_accuracy: 0.4938 - val_loss: 0.6949\n",
      "Epoch 3/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 41ms/step - accuracy: 0.5085 - loss: 0.6923 - val_accuracy: 0.4944 - val_loss: 0.6941\n",
      "Epoch 4/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 40ms/step - accuracy: 0.5143 - loss: 0.6916 - val_accuracy: 0.5036 - val_loss: 0.6936\n",
      "Epoch 5/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 40ms/step - accuracy: 0.5160 - loss: 0.6910 - val_accuracy: 0.4974 - val_loss: 0.6938\n",
      "Epoch 6/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 40ms/step - accuracy: 0.5141 - loss: 0.6898 - val_accuracy: 0.4996 - val_loss: 0.6951\n",
      "Epoch 7/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 40ms/step - accuracy: 0.5186 - loss: 0.6881 - val_accuracy: 0.5102 - val_loss: 0.6930\n",
      "Epoch 8/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 40ms/step - accuracy: 0.5218 - loss: 0.6862 - val_accuracy: 0.5144 - val_loss: 0.6936\n",
      "Epoch 9/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 40ms/step - accuracy: 0.5304 - loss: 0.6839 - val_accuracy: 0.5186 - val_loss: 0.7187\n",
      "Epoch 10/10\n",
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 40ms/step - accuracy: 0.5361 - loss: 0.6793 - val_accuracy: 0.5182 - val_loss: 0.7011\n",
      "391/391 - 6s - 14ms/step - accuracy: 0.5187 - loss: 0.6992\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.6991934180259705, 0.5186799764633179]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])\n",
    "history=model.fit(x_train,y_train,batch_size=64,epochs=10,validation_split=0.2)\n",
    "model.evaluate(x_test,y_test,batch_size=64,verbose=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8c480e40-2708-411e-a19e-4f0ba17a7a82",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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2draGnv37sU///wDPz8/ODs7w87ODh06dMD2vEOPUHDohUajwffff48BAwagSpUqaNasGTZt2lTBvyWRmdH+v+zRAxg0CKhaFbh4EfjzT3XjIiomtk1EVFapqVIB8O23gcxMYNgw4MABKWChBiZXeqAowL176mzFvUG9cOFC+Pj44NVXX0VcXBzi4uLQoEEDAMB7772HoKAgnD17Fm3atEFKSgr69u2L7du34+jRo+jVqxf69etXYM2xh33yyScYMmQITpw4gb59+2LkyJG4detWWT9eItIlOzt/cmVnBwwZIvssbEFQr20qSccp2yYiKovLl6Ua4KpVMkJ+3jxgzRq516gW1de5MgWpqfK9Rg0pKcX7B2Rvbw8rKytUqVIFderUAQCcO3cOADBjxgz07Nkz57k1a9bE448/nrM/c+ZMrF+/Hps2bcKbb75Z6HuMHj0aw4cPBwDMmjULX3/9NQ4fPozevXuX5lcjoqKcOgUkJMiiHU8+KcdeekkSq59+Ar76St3WhVSnVttU3HYJYNtERKW3bRswfDhw+zZQuzYQFgY8/bTaUbHnigB4eXnl27937x7ee+89eHh4wMHBAXZ2djh37twj7w62adMm53HVqlVRrVo1JCQklEvMRGZP22v11FPAf4tmo3NnGQeRkgL88ot6sRHpAdsmItIlOxuYNQvo00cSK29vICrKMBIrgD1XelGlinyXUeu9y6rqQ7cY3333XWzbtg1z585F06ZNYWtri0GDBiE9Pb3I81SuXDnfvkajQXZ2dtkDJKKC8g4J1NJoZFGPadOkB6u8l6Eng6ZW26SvehJsm4joYcnJ0rRt2CD7r70mAzWsrVUNKx8mV3qg0RjH6BsrKytkZWU98nl79+7F6NGjMWDAAABASkoK/v3333KOjoiKLT0d2L1bHudNrgBg1Chg+nT5+aVLQOPGFR8fGQS2TURkSs6cAQYMkBVIrKxkHatXXlE7qoI4LNCMuLm54dChQ/j333+RmJhY6J27pk2bYt26dTh27BiOHz+OESNG8C4fkSE5eFAm1NSuXXC5+QYNAO08leXLKzw0opJi20REjxIeLsP/LlwA6teX9awMMbECmFyZlUmTJsHS0hIeHh5wcnIqdJz6/PnzUaNGDXTs2BH9+vVDr1690L59+wqOlogKlXdIoK6VEV96Sf5csUIGpxMZMLZNRFSY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",
      "text/plain": [
       "<Figure size 1000x300 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "loss=history.history['loss']\n",
    "acc=history.history['accuracy']\n",
    "val_loss=history.history['val_loss']\n",
    "val_acc=history.history['val_accuracy']\n",
    "plt.figure(figsize=(10,3))\n",
    "plt.subplot(121)\n",
    "plt.plot(loss,color='b',label='train')\n",
    "plt.plot(val_loss,color='r',label='validate')\n",
    "plt.ylabel('loss')\n",
    "plt.legend()\n",
    "plt.subplot(122)\n",
    "plt.plot(acc,color='b',label='train')\n",
    "plt.plot(val_acc,color='r',label='validate')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "797a5ea8-2d97-4712-9885-708b03aa2a45",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1m9/9\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step\n",
      "评论为: The ultimate story of friendsip, of hope, and of life, and overcoming adversity. I understand why so many class this as the best film of alltime, it isn't, mine, but I get it. If you haven't seen it, or haven't seen it for some time, you need to watch it, it's amazing.\n",
      "预测结果为: 正面评论\n"
     ]
    }
   ],
   "source": [
    "dict={0:\"正面评论\",1:\"负面评论\"}\n",
    "def display_predict(text):\n",
    "    token=tf.keras.preprocessing.text.Tokenizer(num_words=4000)\n",
    "    token.fit_on_texts(text)\n",
    "    input_seq=token.texts_to_sequences(text)\n",
    "    test_seq=tf.keras.preprocessing.sequence.pad_sequences(input_seq,padding='post',maxlen=400,truncating='post')\n",
    "    pred=model.predict(test_seq)\n",
    "    print(\"评论为:\",text)\n",
    "    print(\"预测结果为:\",dict[np.argmax(pred)])\n",
    "test_text=\"The ultimate story of friendsip, of hope, and of life, and overcoming adversity. I understand why so many class this as the best film of alltime, it isn't, mine, but I get it. If you haven't seen it, or haven't seen it for some time, you need to watch it, it's amazing.\"\n",
    "display_predict(test_text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "65d906ba-12a1-4e75-931e-570acc9376d4",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
